namespace ScrumSprintMonitor.ConfigEditor.Views.ConfigurationView
{
	#region #using Directives

	using System.Collections.Generic;
	using System.Windows.Input;

	#endregion

	public interface IConfigurationViewModel
	{
		bool IsConfigurationWritable { get; }

		IList<string> AvailableTfsServers { get; }
		string TfsServerName { get; set; }

		string ConfigurationFilePath { get; set; }
		ICommand BrowseSprintConfigurationCommand { get; }
		ICommand EditSprintConfigurationCommand { get; }

		string TeamMembersConfigurationFilePath { get; set; }
		ICommand BrowseTeamMembersConfigurationCommand { get; }
		ICommand EditTeamMembersConfigurationCommand { get; }

		string PresentationConfigurationFilePath { get; set; }
		ICommand BrowsePresentationConfigurationCommand { get; }
		ICommand EditPresentationConfigurationCommand { get; }

		bool EnableOutlookIntegration { get; set; }
		bool ConsiderOutlookTentativeAsFreeTime { get; set; }
		bool IsConsiderOutlookTentativeAsFreeTimeEnabled { get; }

		bool ReportUnestimatedSprintBacklogItems { get; set; }
		bool InPlanningMode { get; set; }

		ICommand ViewLogFileCommand { get; }

		ICommand OkCommand { get; }
		ICommand CancelCommand { get; }

		void OnViewActivated();
	}
}